package hot.charr;

public class A541 {
    public String reverseStr(String s, int k) {
        char[] ch=s.toCharArray();
        int length=s.length();
        int l=0;
        //l代表本次开始的下标
        while(l<length){
            int r=k+l-1;
            if(r<length){
                //剩余字符大于等于k
                //先将本次k个字符反转
                reverse(ch,l, r);
//如果剩余字符大于2k
                if(length-l>=2*k){
                    l+=2*k;
                }else{
                    //如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。
                    break;
                }
            }else{
//剩余字符反转 从l到length-1;
                reverse(ch,l,length-1);
                break;
            }
        }
        return String.valueOf(ch);
    }
    void reverse(char[] ch,int l,int r){
        while(l<r){
            char temp=ch[l];
            ch[l]=ch[r];
            ch[r]=temp;
            l++;
            r--;
        }
    }
}
